/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package unai;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

/**
 *
 * @author CUA
 */
public class MensajeDAO {
    
	@SessionTarget
	Session session;
	
	@TransactionTarget
	Transaction transaction;
	
    public void guardarOActualizarMensaje(Mensaje mensaje) {
		try {
			session.saveOrUpdate(mensaje);
		} catch (Exception e) {
			transaction.rollback();
			e.printStackTrace();
		}
	}

	/**
	 * Used to delete a user.
	 */
	public void eliminarMensaje(Long id) {
		try {
			Mensaje mensaje = (Mensaje) session.get(Mensaje.class, id);
			session.delete(mensaje);
		} catch (Exception e) {
			transaction.rollback();
			e.printStackTrace();
		} 
	}
	
	/**
	 * Used to list all the users.
	 */
	@SuppressWarnings("unchecked")
	public List<Mensaje> listarMensajes(){
		List<Mensaje> mensajes = null;
		try {
			mensajes = session.createQuery("from Mensaje").list();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return mensajes;
	}

	/**
	 * Used to list a single user by Id.
	 */
	public Mensaje listarMensajePorId(Long id) {
		Mensaje mensaje = null;
		try {
			mensaje = (Mensaje) session.get(Mensaje.class, id);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return mensaje;
	}
    
}
